package com.xyx.jdbc2;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class JdbcTest {
	public static void main(String[] args) {
		//test01()
		test02();
	}

	private static void test01() {

		ResultSet rs = null;
		// 通过封装的方式链接数据库
		// 获取数据库连接的方法，和得到数据库操作的对象，通过工厂模式
		try {
			rs = SimplePlant.getInstance(Dbconnect.class)
					.query("select employee_id,first_name,department_id from employees  where department_id>20 ");
			// 循环输出结果集
			while (rs.next()) { 
				System.out
						.println("雇员ID为：" + rs.getObject(1) + "雇员姓名为：" + rs.getObject(2) + "部门编号为：" + rs.getObject(2));
			}
			/*
			 * System.out.println("==========打印所有的列============");
			 * 
			 * // 因为已经遍历过一次结果，所有再次遍历之前，需要将光标移动到最前位置（第一行之前） rs.beforeFirst(); //
			 * 获取结果集中的所有的列的信息 ResultSetMetaData rsmd = rs.getMetaData(); // 获取结果集中列的个数 int
			 * colCount = rsmd.getColumnCount(); // 此处应该遍历打印一下列标题 while (rs.next()) { //
			 * 遍历当前行的每列的信息 for (int i = 1; i <= colCount; i++) { // 取出每一列的列名 String
			 * strColName = rsmd.getColumnLabel(i); // 通过列名获取当前行当前列的值
			 * System.out.print("     " + rs.getObject(strColName)); } // 换行
			 * System.out.println(); }
			 */

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		
	}
	/**
	 * 将从数据库查询到的语句存入到集合当中
	 */
	private static void test02() {
		//利用简单工厂函数，反射创建一个Dbconnect的实例对象
		List<Departments> list=SimplePlant.getInstance(Dbconnect.class).queryList("select * from departments",Departments.class);
		//循环list中的每一个部门对象
		for (Departments dep : list) {
			System.out.print(dep.toString());
			System.out.println();
		}
		
	}
}
